package de.cbf.cam.dsa.inventory.handlers;

import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.WorkbenchException;
import org.eclipse.ui.handlers.HandlerUtil;

import de.cbf.cam.dsa.inventory.perspectives.InventoryPerspective;

/**
 * Our sample handler extends AbstractHandler, an IHandler base class.
 * @see org.eclipse.core.commands.IHandler
 * @see org.eclipse.core.commands.AbstractHandler
 */
public class OpenInventoryPerspectiveHandler extends AbstractHandler {
	/**
	 * The constructor.
	 */
	public OpenInventoryPerspectiveHandler() {
	}

	/**
	 * the command has been executed, so extract extract the needed information
	 * from the application context.
	 */
	public Object execute(ExecutionEvent event) throws ExecutionException {
		IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindowChecked(event);
		try {
			window.getWorkbench().showPerspective(InventoryPerspective.ID, window);
		} catch (WorkbenchException e) {			
			e.printStackTrace();
		}
		return null;
	}
}
